Digital video compression may be used in a variety of implementations, such as broadcasting, streaming and storage. Various video compression standards and method may include motion estimation which is the process of determining motion vectors that describe the transformation from one image to another; usually between adjacent frames in a video sequence.
For a current block in a current frame, the motion estimation algorithm may search for a best matching block in a search range of a target frame, which is the most similar to the current block. When relatively good match has been found, the motion estimation algorithm may assign motion vectors to the block, which indicate how far horizontally and vertically the block must be moved so that a match is made.
Finding the best match may be performed using a sub-pixels resolution. Theoretically, the motion estimation algorithm may calculate all possible sub-pixel locations within a search area before performing the search. Such method may require large memory space and processing resources. Accordingly, sub-pixel motion estimation algorithm which may reduce calculation complexity is desired.
It will be appreciated that for simplicity and clarity of illustration, elements shown in the figures have not necessarily been drawn to scale. For example, the dimensions of some of the elements may be exaggerated relative to other elements for clarity. Further, where considered appropriate, reference numerals may be repeated among the figures to indicate corresponding or analogous elements.